package com.example.smallwork;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class Dbhelper extends SQLiteOpenHelper {
    public static final int DATABASE_VERSION = 1;
    //数字图书馆数据库名
    public static final String DATABASE_NAME = "use.db";
    public static final String CONTENT = "content";
    public static final String peoples = "people";

    public Dbhelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    //重载 onCreate 方法，创建数据库中的表
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql =
                "create table people(" +
                        "username text," +
                        "ji text primary key)";
        db.execSQL(sql);
    }
    public void insertjl(Jilu jil) {
//定义 SQLiteDatabase 对象实例
        SQLiteDatabase sqLiteDatabase = getWritableDatabase();
        Log.d("文件位置", sqLiteDatabase.getPath());
//用参数 Reader 对象中的各成员值构造 ContentValues 对象
//以利用 SqLiteDatabase 对象的 insert 方法实现操作
        ContentValues values = new ContentValues();
        values.put("username", jil.getUsername());
        values.put("ji", jil.getJi());
        sqLiteDatabase.insert("people", null, values);
        sqLiteDatabase.close();
    }
    public Jilu deletejil(Jilu jil){
        SQLiteDatabase sqLiteDatabase = getWritableDatabase();
//调用 SqLiteDatabase 对象的 delete 方法实现从数据库的 readers 表中删除数据

        int result = sqLiteDatabase.delete("people", "ji = ?", new String[]{jil.getJi()}); //精确匹配读者编号作为删除条件

        sqLiteDatabase.close();
        return jil;
    }
    //查询读者信息:以读者为关键字查询
//参数：reader_num - 要删除的读者号
//返回值：查询得到的 cursor；若不存在该读者，返回 null
    @SuppressLint("Range")
    public Cursor queryjilu(Jilu jil){
//定义 SQLiteDatabase 对象实例
        SQLiteDatabase sqLiteDatabase = getReadableDatabase();
//调用 SqLiteDatabase 对象的 query 方法实现查询操作
//查询条件中用 LIKE 匹配"%" + reader_num + "%"条件，查询中编号中含参数所给值的记录
        Cursor cursor = sqLiteDatabase.query("people",null, "username = ?", new String[]{jil.getUsername()}, null, null, null, null);
//对于查询操作，由于返回的 curso 仍然要用到数据库的连接，不作关闭处理
//这实际上会对系统效率造成此处可接受的不良影响
//sqLiteDatabase.close();
//返回查询得到的游标 cursor，待返回后由调用者处理
        return cursor;
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    }
}